package com.fowo.api.model.shein.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import javax.validation.constraints.*;
import lombok.Getter;
import lombok.Setter;

/** 希音订单 导入导出辅助模型 */
@Getter
@Setter
public class SheinOrderExcelPo {

  @Size(max = 50, message = "订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单号")
  private String orderNo;

  @Size(max = 50, message = "订单类型长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单类型")
  private String orderType;

  @Size(max = 50, message = "物流渠道长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "物流渠道")
  private String performanceType;

  @Size(max = 50, message = "订单状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单状态")
  private String orderStatus;

  @Size(max = 50, message = "是否货到付款长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "是否货到付款")
  private String isCod;

  @Size(max = 50, message = "订单标签长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单标签")
  private String orderTag;

  @Size(max = 50, message = "发货方式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "发货方式")
  private String deliveryType;

  @Size(max = 50, message = "订单打印状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单打印状态")
  private String printOrderStatus;

  @Size(max = 50, message = "计费状态长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "计费状态")
  private String invoiceStatus;

  @Size(max = 50, message = "销售价格长度不能超过20")
  @ExcelProperty(value = "销售价格")
  private java.math.BigDecimal settleActuallyPrice;

  @Size(max = 50, message = "订单的货币长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "订单的货币")
  private String orderCurrency;

  @Size(max = 50, message = "货物总额长度不能超过20")
  @ExcelProperty(value = "货物总额")
  private java.math.BigDecimal productTotalPrice;

  @Size(max = 50, message = "商店折扣的总额长度不能超过20")
  @ExcelProperty(value = "商店折扣的总额")
  private java.math.BigDecimal storeDiscountTotalPrice;

  @Size(max = 50, message = "活动折扣总额长度不能超过20")
  @ExcelProperty(value = "活动折扣总额")
  private java.math.BigDecimal promotionDiscountTotalPrice;

  @ExcelProperty(value = "全部佣金")
  private java.math.BigDecimal totalCommission;

  @ExcelProperty(value = "总服务费")
  private java.math.BigDecimal totalServiceCharge;

  @ExcelProperty(value = "履行服务总费用")
  private java.math.BigDecimal totalPerformanceServiceCharge;

  @ExcelProperty(value = "估计总收入")
  private java.math.BigDecimal estimatedGrossIncome;

  @ExcelProperty(value = "订单销售税总额")
  private java.math.BigDecimal totalSaleTax;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "分阶时间")
  private java.util.Date orderAllocateTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "请求交付时间")
  private java.util.Date requestDeliveryTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "打印时间")
  private java.util.Date printingTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "预计交货时间")
  private java.util.Date scheduleDeliveryTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "领取及签收时间")
  private java.util.Date pickUpTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "订单接收时间")
  private java.util.Date orderReceiptTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "订单退款时间")
  private java.util.Date orderReturnTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "订单信息更新时间")
  private java.util.Date orderMsgUpdateTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "下单时间")
  private java.util.Date orderTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "付款时间")
  private java.util.Date paymentTime;

  @Size(max = 50, message = "卖方交货时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "卖方交货时间")
  private java.util.Date sellerDeliveryTime;

  @Size(max = 50, message = "仓库交货时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "仓库交货时间")
  private java.util.Date warehouseDeliveryTime;

  @Size(max = 50, message = "拒绝订单时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "拒绝订单时间")
  private java.util.Date orderRejectionTime;

  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "订单报失时间")
  private java.util.Date orderReportedLossTime;

  @Size(max = 50, message = "OPS订单号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "OPS订单号")
  private String billNo;

  @Size(max = 50, message = "市场区域长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "市场区域")
  private String salesArea;

  @Size(max = 50, message = "库存模式长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "库存模式")
  private String stockMode;

  @Size(max = 50, message = "销售网站长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "销售网站")
  private String salesSite;

  @Size(max = 50, message = "店铺编码长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "店铺编码")
  private String storeCode;

  @Size(max = 50, message = "CutOff包裹的预计领取时间长度不能超过20")
  @DateTimeFormat("yyyy年MM月dd日HH:mm:ss")
  @ExcelProperty(value = "CutOff包裹的预计领取时间")
  private java.util.Date expectedCollectTime;

  @ExcelProperty(value = "店铺")
  private Long sid;

  @Size(max = 50, message = "姓长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "姓")
  private String lastName;

  @Size(max = 50, message = "中间名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "中间名")
  private String middleName;

  @Size(max = 50, message = "名长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "名")
  private String firstName;

  @Size(max = 50, message = "国家长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "国家")
  private String country;

  @Size(max = 50, message = "省长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "省")
  private String province;

  @Size(max = 50, message = "市长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "市")
  private String city;

  @Size(max = 50, message = "区长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "区")
  private String district;

  @Size(max = 50, message = "街道长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "街道")
  private String street;

  @Size(max = 50, message = "地址1长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "地址1")
  private String address;

  @Size(max = 50, message = "地址2长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "地址2")
  private String addressExt;

  @Size(max = 50, message = "手机号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "手机号")
  private String phone;

  @Size(max = 50, message = "邮编长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "邮编")
  private String postCode;

  @Size(max = 50, message = "税号长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "税号")
  private String taxNo;

  @Size(max = 1000, message = "包裹ID长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "包裹ID")
  private String packageIds;

  @Size(max = 5000, message = "包裹运单信息长度不能超过20")
  @ContentStyle(
    horizontalAlignment = HorizontalAlignmentEnum.LEFT,
    dataFormat = 49
  )
  @ExcelProperty(value = "包裹运单信息")
  private String packageWaybillList;
}
